<th:block th:fragment="frag(app)">
	<div class="box" th:attrappend="class=${app.metaShow ? '' : ' collapsed-box'}">
		<div class="box-header with-border">
			<th:block th:include="tool-collapse :: frag(${!app.metaShow})"></th:block>
			<h3 class="box-title">MApp(<span th:text="${app.type}"></span>)</h3>
		</div>
		<!-- /.box-header -->
		<div class="box-body">
			<table class="table table-bordered" data-meta-po="MApp">
				<tbody><tr>
					<th class="col-md-4">属性</th>
					<th class="col-md-5">值</th>
					<th class="col-md-3">操作</th>
				</tr>
				<th:block th:with="objectPropertyNames=${T(java.util.Arrays).asList('id', 'idx', 'name', 'type', 'template', 'status')}">
					<th:block th:each="property : ${objectPropertyNames}">
						<tr th:if="${property == 'id'}">
							<td>id</td>
							<td th:text="${app.id}"></td>
							<td>
							</td>
						</tr>
						<tr th:unless="${property == 'id'}">
							<td th:text="${property}"></td>
							<td><input class="form-control input-sm" th:value="${app[property]}"></td>
							<td>
								<th:block th:include="meta/man/object-operations :: frag(${app}, ${property})"></th:block>
							</td>
						</tr>
					</th:block>
					<th:block th:each="key : ${app.data.keySet()}">
						<tr>
							<td th:text="${'data.' + key}"></td>
							<td><input class="form-control input-sm" th:value="${app.data.get(key)}"></td>
							<td>
								<th:block th:include="meta/man/object-operations :: frag(${app}, ${'data.' + key})"></th:block>
							</td>
						</tr>
					</th:block>
					<tr>
						<td><input class="form-control input-sm" name="key"></td>
						<td><input class="form-control input-sm" name="value"></td>
						<td>
							<div class="btn-group btn-xs">
								<button type="button" class="btn btn-xs" data-meta-add>Add</button>
							</div>
						</td>
					</tr>
				</th:block>
				</tbody></table>
		</div>
	</div>
</th:block>